package texteditor

// HistoryManager 历史管理者
type HistoryManager struct {
	mementos []Memento
}

// Push 保存备忘录
func (hm *HistoryManager) Push(memento Memento) {
	hm.mementos = append(hm.mementos, memento)
}

// Pop 弹出备忘录
func (hm *HistoryManager) Pop() Memento {
	if len(hm.mementos) == 0 {
		return nil
	}
	last := hm.mementos[len(hm.mementos)-1]
	hm.mementos = hm.mementos[:len(hm.mementos)-1]
	return last
}